import Vue from 'vue'
import App from './App.vue'
import upperFirst from 'lodash/upperFirst'
import camelCase from 'lodash/camelCase'

import './config.js'

import router from './router/index'
import store from './store/index'
import 'babel-polyfill'

import './assets/css/main.scss'
import './assets/css/public.css' // 总样式
// import 'src/assets/css/resources.scss' // 公共样式

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
// import './assets/icon/iconfont.css' // icon字体
import './utils/makeExcel' // 前端导出excel
import './utils/axios.js' // 请求
import './utils/filter.js' //请求
import './utils/action.js'//action接口

// eslint-disable-next-line
import JsEncrypt from 'jsencrypt/bin/jsencrypt'
import i18n from './i18n/i18n'
// require('./mock.js') //模拟数据
Vue.use(ElementUI)

Vue.config.productionTip = false
// let bus = new Vue() //为了头部与左侧菜单兄弟组件传值
// Vue.prototype.bus = bus


// 注册全局组件
const requireComponent = require.context(
  // 其组件目录的相对路径
  './components/public',
  // 是否查询其子目录
  false,
  // 匹配基础组件文件名的正则表达式
  /[A-Za-z]\.(vue|js)$/
)

requireComponent.keys().forEach(fileName => {
  // 获取组件配置
  const componentConfig = requireComponent(fileName)

  // 获取组件的 PascalCase 命名
  const componentName = upperFirst(
    camelCase(
      // 获取和目录深度无关的文件名
      fileName
        .split('/')
        .pop()
        .replace(/\.\w+$/, '')
    )
  )

  // 全局注册组件
  Vue.component(
    componentName,
    // 如果这个组件选项是通过 `export default` 导出的，
    // 那么就会优先使用 `.default`，
    // 否则回退到使用模块的根。
    componentConfig.default || componentConfig
  )
})



new Vue({
  router,
  i18n,
  store,
  render: h => h(App)
}).$mount('#app')


/*   @                                    /\  /\
 *    @                                  /  \/  \                        
 *     @                                /        --                       
 *      \---\                          /           \                    
 *       |   \------------------------/       /-\    \                
 *       |                                    \-/     \               
 *        \                                             ------O
 *         \                                                 /        
 *          |    |                    |    |                /          
 *          |    |                    |    |-----    -------          
 *          |    |\                  /|    |     \  WWWWWW/            
 *          |    | \                / |    |      \-------             
 *          |    |  \--------------/  |    |
 *         /     |                   /     |
 *         \      \                  \      \
 *          \-----/                   \-----/
 * 
 *        神兽保佑，别出BUG
 */